Sobre multipath
Em storages corporativos (IBM, HPE, Dell, Lenovo/Pure, etc.) o termo multipath aparece o tempo todo. O conceito é simples: múltiplos caminhos entre o host e a mesma LUN, garantindo
- Alta disponibilidade – se HBA, cabo, switch ou controladora falhar, o I/O migra sem interrupção;
- Balanceamento de carga – tráfego distribuído entre links (quando a política do array permite);
- Manutenção sem downtime – podemos isolar um caminho para upgrade sem parar serviços.
Pacotes necessários
sudo apt update
sudo apt install multipath-tools scsitools
sudo systemctl enable --now multipathd
Visualizando caminhos
root@host:~# multipath -ll
mpatha (36d039ea0001cf998000002535ffbd0d6) dm‑1 LENOVO,DE_Series
size=80G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 16:0:0:1 sdc 8:32 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
`- 17:0:0:1 sdd 8:48 active ready running
Com o multipath é possível definir se o tráfego será ativo‑ativo, ativo‑standby, round‑robin, etc. Para a linha Lenovo DE‑Series não há tunáveis oficiais para Ubuntu, portanto utilizamos o snippet padrão incluído em /usr/share/multipath/conf.d/50‑lenovo.conf
(abaixo apenas para referência):
device {
vendor "LENOVO"
product "DE_Series"
product_blacklist "Universal Xport"
path_grouping_policy "group_by_prio"
path_checker "rdac"
features "2 pg_init_retries 50"
hardware_handler "1 rdac"
prio "rdac"
failback "immediate"
no_path_retry 30
}
Aliases amigáveis
Por padrão o WWID gigantesco aparece como nome do mapa (/dev/mapper/36d0…
). Podemos criar um alias – recomenda‑se usar o mesmo nome do volume na storage para evitar confusão e ações incorretas durante a manutenção.
exemplo de conf:
# /etc/multipath.conf
defaults {
user_friendly_names yes
}
multipaths {
multipath {
wwid 36d039ea0001cf998000002535ffbd0d6
alias volume_Edu_Teste
}
multipath {
wwid 36d039ea0001cf998000002535ffbd0d7
alias Banco_de_dados
}
multipath {
wwid 36d039ea0001cf998000002535ffbd0d8
alias Backup
}
}
Recarregue o daemon e confirme:
sudo multipathd -k reconfigure
sudo multipath -ll
Resize de LUN
-
Após Expandir o LUN na storage
-
Forçar rescan dos caminhos SCSI
for d in /sys/class/scsi_device/*/device/rescan; do
echo 1 | sudo tee "$d"
done -
Atualizar o mapa multipath
sudo multipathd -k 'resize map <alias-ou-wwid>'
-
Confirmar novo tamanho
sudo multipath -ll <alias>
-
Expandir o sistema de arquivos
# XFS
sudo xfs_growfs /ponto/de/montagem
# ou EXT4
sudo resize2fs /dev/mapper/<alias>
# ou LVM
lvextend -l+100%FREE -n <LV> <VG> -r
Refresh / adição de caminhos
-
Detectar novos targets ou mudanças de zoning
sudo rescan-scsi-bus -r
-
Recarregar regras do multipath
sudo multipathd -k reconfigure
Esses dois passos são suficientes para que o host veja caminhos recém‑liberados sem reboot.
Remoção de LUN no ambiente linux
-
Desmontar FS / desativar VG que usa o LUN
umount /ponto/de/montagem
ou
vgchange -an <VG_name> -
Esvaziar buffers de I/O (flush)
sudo blockdev --flushbufs /dev/mapper/<alias>
-
Remover o mapa multipath
sudo multipath -f <alias>
-
Apagar os dispositivos SCSI individuais
for sd in $(lsscsi | grep <alias> | awk '{print $NF}'); do
echo 1 | sudo tee /sys/block/${sd##*/}/device/delete
done -
Desmapear a LUN na storage
Importante: se o LUN fizer parte de LVM, use
vgreduce
/pvremove
antes do passo 3.